Modern computer systems store large amounts of data using a variety of storage systems. In a modern distributed computer system environment, where a plurality of users, services, applications, virtual machines, and hosts have access to computer systems, data associated with such entities can be frequently accessed. Such data may be read, written, replicated, copied, and deleted on a near-constant basis, placing a tremendous workload on storage system devices. In such systems, the failure of storage system devices may occur very frequently, thus increasing the burden on storage systems due to a requirement to restore data that may be lost when storage system devices fail.
Replicating data across multiple devices may make the system more tolerant of storage system device failure, but such replication increases storage requirements. Additionally, while a storage system device may only partially fail, the logical addressing schemes used for such storage system devices may not be configured to compensate for a partial failure. For the sake of efficiency, the entire storage system device may be marked as unusable and discarded. Detecting storage system device failures and addressing them may then become increasingly costly, reducing the overall efficiency of the storage system and increasing the cost to customers or users of a computer system.